package com.example.jetpackstu.logic.db

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.example.jetpackstu.logic.dao.NewsDao
import com.example.jetpackstu.logic.entity.News

@Database(
    version = 1,
    entities = [News::class]
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun newsDao(): NewsDao

    companion object {

        private var instance: AppDatabase? = null

        @Synchronized
        fun getDatabase(context: Context): AppDatabase {
            instance?.let {
                return it
            }
            return Room
                .databaseBuilder(
                    context.applicationContext,
                    AppDatabase::class.java, "app_database"
                )
                .allowMainThreadQueries()
                .build()
                .apply {
                    instance = this
                }
        }
    }
}